
"""
    1，输入年份，判断该年是否为闰年。闰年的条件:能够被4整除但不能被100整除，或者能够被400整除的。
    2，输出10行内容，每行的内容都不一样，第1行一个星号，第2行2个星号…
    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********
3，输出所有的水仙花数（三位数，各位数字的立方和等于自身）。
"""

# 1，输入年份，判断该年是否为闰年。闰年的条件:能够被4整除但不能被100整除，或者能够被400整除的。
# 闰年的判断规则如下：
# 普通闰年：公历年份是4的倍数的，且不是100的倍数，为普通闰年。（如：2004年、2020年就是闰年）
# 世纪闰年：公历年份是整百数的，必须是400的倍数才是闰年（如：1900年不是闰年，2000年是闰年）。
year = int(input('请输入年份：'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f'年份：{year} 是闰年')
else:
    print(f'年份：{year} 不是闰年')


#2，输出10行内容，每行的内容都不一样，第1行一个星号，第2行2个星号…
# 第一种方法：一个for循环
for row in range(10):
    print("*" * row)
# # 第二种方法：嵌套for循环
for row in range(10):
    for column in range(row):
        print('*',end='')
    print('')


#3，输出所有的水仙花数（三位数，各位数字的立方和等于自身）。
    # 水仙花数是指一个n位正整数（n≥3），它的每个位上的数字的n次幂之和等于它本身。
    # 例如，对于三位数153，有1^3 + 5^3 + 3^3 = 153，因此153是一个水仙花数。
    # 三位数的水仙花数有：153、370、371、407等。

for num in range(100,1000):  #1000不不包含
    frstNum = int(str(num)[0])
    twoNum = int(str(num)[1])
    threeNum = int(str(num)[2])
    # result = frstNum * frstNum * frstNum + twoNum * twoNum * twoNum + threeNum * threeNum * threeNum
    result = frstNum ** 3 + twoNum ** 3 + threeNum ** 3
    if num == result:
        print(f'数字：{num} 是水仙花数')

print("******")
for num in range(100,1000):  #1000不不包含
    # 123
    frstNum = num // 100  #取出百位数 先取整
    twoNum = (num - frstNum * 100) // 10    # 取出十位数，方法一、  当前数- (用第一位数 * 100) // 10 取整数，如：123 - (1 * 100) // 10 = 2
    #twoNum = num // 10 % 10    # 取出十位数，方法二、 先取整 再取模
    threeNum = num % 10 # 取出个位数 取余数
    # result = frstNum * frstNum * frstNum + twoNum * twoNum * twoNum + threeNum * threeNum * threeNum
    result = frstNum ** 3 + twoNum ** 3 + threeNum ** 3
    if num == result:
        print(f'数字：{num} 是水仙花数')

print("******")
for num in range(100, 1000):
    tmp = 0
    for column in range(0, 3):
        tmp += int(str(num)[column]) ** 3
    if tmp == num:
        print(num)

print("******")
for a in range(1,10):  #百位数
    for b in range(10):  #十位数
        for c in range(10):   #个位数
            if a*100+b*10+c == a**3+b**3+c**3:
                print(a*100+b*10+c)

print("******")
for i in range(100,1000):
    a = i // 100
    b = i % 100 // 10
    c = i % 100 % 10
    if a**3 + b**3 + c**3 == i:
        print(i)